package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 角色权限（控制员工/部长的会议室申请权限）对象 permission
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
public class Permission extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 权限记录主键ID */
    private Long permissionId;

    /** 员工ID（关联员工表） */
    @Excel(name = "员工ID", readConverterExp = "关=联员工表")
    private Long employeeId;

    /** 部长ID（关联部长表） */
    @Excel(name = "部长ID", readConverterExp = "关=联部长表")
    private Long ministerId;

    /** 会议室申请权限状态（1=有权限，0=无权限） */
    @Excel(name = "会议室申请权限状态", readConverterExp = "1==有权限，0=无权限")
    private Integer canApplyMeetingroom;

    /** 授权时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "授权时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date assignTime;

    /** 授权人ID（可关联管理员表） */
    @Excel(name = "授权人ID", readConverterExp = "可=关联管理员表")
    private Long assignerId;

    public void setPermissionId(Long permissionId) 
    {
        this.permissionId = permissionId;
    }

    public Long getPermissionId() 
    {
        return permissionId;
    }

    public void setEmployeeId(Long employeeId) 
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId() 
    {
        return employeeId;
    }

    public void setMinisterId(Long ministerId) 
    {
        this.ministerId = ministerId;
    }

    public Long getMinisterId() 
    {
        return ministerId;
    }

    public void setCanApplyMeetingroom(Integer canApplyMeetingroom) 
    {
        this.canApplyMeetingroom = canApplyMeetingroom;
    }

    public Integer getCanApplyMeetingroom() 
    {
        return canApplyMeetingroom;
    }

    public void setAssignTime(Date assignTime) 
    {
        this.assignTime = assignTime;
    }

    public Date getAssignTime() 
    {
        return assignTime;
    }

    public void setAssignerId(Long assignerId) 
    {
        this.assignerId = assignerId;
    }

    public Long getAssignerId() 
    {
        return assignerId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("permissionId", getPermissionId())
            .append("employeeId", getEmployeeId())
            .append("ministerId", getMinisterId())
            .append("canApplyMeetingroom", getCanApplyMeetingroom())
            .append("assignTime", getAssignTime())
            .append("assignerId", getAssignerId())
            .toString();
    }
}
